package com.technology.education.ui.common.web

import android.os.Bundle
import android.view.ViewGroup
import android.webkit.JavascriptInterface
import android.webkit.WebView
import android.widget.LinearLayout
import com.just.agentweb.*
import com.technology.education.data.AppData
import com.technology.education.databinding.ActivityWebBinding
import me.hgj.jetpackmvvm.base.activity.BaseVmDbActivity
import me.hgj.jetpackmvvm.base.viewmodel.BaseViewModel
import java.net.URLDecoder


/**
 *@author:create by BZY
 *Date: 2020/6/16 10
 */
class WebActivity : BaseVmDbActivity<BaseViewModel, ActivityWebBinding>() {
    var agentWeb: AgentWeb? = null
    override fun initView(savedInstanceState: Bundle?) {
        intent?.apply {
            mDatabind.toolbar.tvTitle.text = getStringExtra("title") ?: ""
            loadUrl(URLDecoder.decode(getStringExtra("url"), "UTF-8"))
        }
        mDatabind.toolbar.toolbar.setNavigationOnClickListener {
            onBackPressed()
        }
    }


    private fun loadUrl(url: String?) {
        AgentWebConfig.syncCookie(url, "token=${AppData.TOKEN}")
        AgentWebConfig.debug()
        agentWeb = AgentWeb.with(this) //
            .setAgentWebParent(
                mDatabind.weblayout,
                LinearLayout.LayoutParams(
                    ViewGroup.LayoutParams.MATCH_PARENT,
                    ViewGroup.LayoutParams.MATCH_PARENT
                )
            ) //传入AgentWeb的父控件。
            .useDefaultIndicator(-1, 2) //设置进度条颜色与高度，-1为默认值，高度为2，单位为dp。
            .setSecurityType(AgentWeb.SecurityType.STRICT_CHECK) //严格模式 Android 4.2.2 以下会放弃注入对象 ，使用AgentWebView没影响。
            .setMainFrameErrorView(
                com.just.agentweb.R.layout.agentweb_error_page,
                -1
            ) //参数1是错误显示的布局，参数2点击刷新控件ID -1表示点击整个布局都刷新， AgentWeb 3.0.0 加入。
            .additionalHttpHeader(url, "Authorization", "Bearer ${AppData.TOKEN}")
            .setOpenOtherPageWays(DefaultWebClient.OpenOtherPageWays.ASK) //打开其他页面时，弹窗质询用户前往其他应用 AgentWeb 3.0.0 加入。
            .interceptUnkownUrl() //拦截找不到相关页面的Url AgentWeb 3.0.0 加入。
            .createAgentWeb() //创建AgentWeb。
            .ready() //设置 WebSettings。
            .go(url) //WebView载入

    }


    override fun createObserver() {
    }


    override fun showLoading(message: String) {

    }

    override fun dismissLoading() {

    }

    override fun onDestroy() {
        super.onDestroy()
        agentWeb?.destroy()
    }
}